The invention generally relates to networking, and more particularly to reducing the number of interrupts presented to a host environment when network traffic is received.
Traditionally, when network traffic units (e.g., Ethernet packets, or network traffic packaged in a different format), are received by a network interface card (NIC), an interrupt is generated to a host environment to have the environment immediately process the received network traffic. (The term xe2x80x9cnetwork trafficxe2x80x9d is used to generally reference a sequence or flow one or more network traffic units received by a network interface.) Typical host environments include computers running a host operating system (OS) such as Microsoft Windows, Novell NetWare, or Unix, as well as dedicated devices controlled by a device-specific OS. Since network traffic can occur regularly, and in significant volume, the interruptions to the host environment can cause a significant slow down of the host environment. This slow down is because interruptions affect the ability of a host CPU to execute other processes, e.g., interactive user sessions or other host programs and services, in a timely manner.
A partial solution to this problem has been to off-load from the host CPU some of the work required for processing network traffic. An example of a NIC which offloads work from the CPU is the EtherExpress(trademark) PRO/100 Smart Adapter by Intel Corporation of Santa Clara, Calif. These NICs include an on-board Intel i960 processor that off-loads the host CPU, and enables part of the normal host device driver functions to run on the NIC. The on-board processor reduces interrupt overhead to the host CPU. (Note that all marks referenced herein are the property of their respective owners.)
Unfortunately, experience has shown that the intelligent NIC can only partially offload the work involved in processing incoming network traffic from the host environment. Although this is a significant improvement over standard totally interrupt-based NICs, which leave all processing to the host environment, there is still significant room for improvement.
A system, which includes a host environment and network interface, for receiving network traffic units. A queue is utilized to queue a first network traffic unit received from a first origin, and a buffer is utilized to store a second network traffic unit received from a second origin. A comparator compares said first and second origins, and if they differ, then said second unit is queued in the queue. If they equate, a host processor is interrupted for said second unit and subsequent network traffic units received from said second origin. Related methods for receiving network traffic units are disclosed.